1. Field of the Invention
The present invention relates generally to code generation in a data communication system, and in particular, to an apparatus and method for generating two-dimensional quasi-complementary turbo codes (QCTCs) and adaptive QCTCs considering the characteristics of turbo codes in a packet communication system employing a retransmission scheme or a general communication system employing a retransmission scheme.
2. Description of the Related Art
In general, a system using a retransmission scheme (e.g., hybrid ARQ: Automatic Repeat Request) performs soft combining to improve transmission throughput. The soft combining techniques are divided into packet diversity combining and packet code combining. These two combining schemes are usually called soft packet combining. Although the packet diversity combining scheme is sub-optimal in performance relative to the packet code combining scheme, it is favorable due to easy implementation when performance loss is low.
As stated above, a packet transmission system uses the packet code combining scheme to improve transmission throughput. A transmitter transmits a code with a different code rate at each packet transmission. If an error is detected from the received packet, a receiver requests a retransmission and performs soft combining between the original packet and a retransmitted packet. The retransmitted packet may have a different code from that of the previous packet. The packet code combining scheme is a process of combining N received packets with a code rate R to a code with an effective code rate of R/N prior to decoding, to thereby obtain a coding gain.
With regard to the packet diversity combining scheme, the transmitter transmits the same code with a code rate R at each packet transmission. If an error is detected from the received packet, the receiver requests a retransmission and performs soft combining between the original packet and the retransmitted packet. The retransmitted packet has an identical code to that of the previous packet. In this sense, the packet diversity combining scheme can be considered symbol averaging on a random channel. The packet diversity combining scheme reduces noise power by averaging the soft outputs of input symbols and achieves such a diversity gain as offered by a multi-path channel because the same code is repeatedly transmitted on a fading channel. However, the packet diversity combining scheme does not provide such an additional coding gain as obtained from a code structure that the packet code combining scheme offers.
Due to implementation simplicity, most packet communication systems have used the packet diversity combining scheme, which is currently being developed for use with the synchronous IS-2000 system and the asynchronous UMTS system. The reason is that the existing packet communication systems using convolutional codes and even packet code combining do not offer a great gain when convolutional codes with a code data rate are used. If a system with R=1/3 supports retransmission, there is not a wide difference in performance between the packet code combining scheme and the packet diversity combining scheme. Thus, the packet diversity combining scheme is selected considering implementation complexity. However, use of turbo codes as forward error correction codes (FEC) requires a different packet combining mechanism because the turbo codes are designed as error correction codes to have performance characteristics very close to the “Shannon Channel Capacity Limit” and their performance varies obviously with the code rates unlike convolutional codes. Therefore, it can be concluded that packet code combining is feasible for a packet communication system using turbo codes in a retransmission scheme to achieve the goal of optimum performance.
In this context, QCTCs have been proposed to increase performance in a soft combining-using system. For details of the QCTCs, see Korea Patent Application No. P2000-62151 filed by the present applicant, and filed in the U.S. Patent and Trademark Office on Oct. 17, 2001 and assigned Ser. No. 09/981,934.
Quasi-Complementary Turbo Codes (QCTCs)
A description will be made of a system that selects the packet code combining scheme or the packet diversity combining scheme using conventional QCTCs according to a data rate herein below.
In a system using R=1/5 turbo codes, for example, packet code combining applies until the overall code rate of the codes produced by soft-combining of retransmitted packets reaches 1/5. For the subsequent retransmitted packets, packet diversity combining and then packet code combining are performed. If the first packet is transmitted at a data rate of 1/3, the required redundancy symbols are provided at a retransmission request to make the overall code rate 1/5. Thus, when a receiver receives both packets, the overall code rate becomes 1/5. Each of the following packets is repeated prior to transmission and the receiver performs packet diversity combining and then packet code combining on the retransmitted packets at the data rate 1/5.
FIG. 1 is a graph illustrating the performance difference between packet code combining and packet diversity combining in the case of turbo codes. As shown in FIG. 1, a turbo code with a low data rate of 1/6 exhibits a greater performance gain than a turbo code with a high code rate of 1/3 with the same symbol energy Es and obtains a performance gain of 3 dB from the packet code combining. Consequently, generation of R=1/3 turbo codes by packet code combining of R=1/6 sub-codes produces a gain that turbo codes with a code rate lower than 1/3 exhibit and a gain that code combining of different codes offers, contemporaneously.
More specifically, for the same code symbol energy Es and the same code rate, turbo codes provide performance close to the “Shannon Channel Capacity Limit” according to the code rates only if iteration decoding is fully implemented, unlike convolutional codes. It is known in the art that a turbo code with a low code rate offers a greater performance gain than a turbo code with a high code rate with the same code symbol energy Es. For example, when R=1/3 is reduced to R=1/6, the performance difference can be estimated by analyzing a change in the “Shannon Channel Capacity Limit”. The reason for assuming the same symbol energy Es irrespective of R=1/3 or 1/6 for the curves of FIG. 1 is that the same symbol energy Es is used for each retransmission in a hybrid ARQ (HARQ) system.
If an R=1/2 code is repeated once and the two codes are packet-diversity-combined on an AWGN (Additive White Gaussian Noise) channel, a maximum gain of 3 dB is obtained in terms of a symbol energy-to-noise ratio (Es/No). The same result occurs in the case of an R=1/6 code. Thus, a performance curve for the R=1/3 turbo code shifts left in parallel by a +3 dB scale due to a packet diversity combining gain and a performance curve for the R=1/6 turbo code also shifts left in parallel by a +3 dB scale when the same symbol energy is given. Here, the performance curves are derived with respect to the energy-to-noise ratio (Eb/No), which is measured to compare code performances according to the code rates. As a consequence, the difference between the turbo code performance curves is equivalent to the performance difference between the packet diversity combining and the packet code combining. The performance difference according to the code rates can be estimated from the “Shannon Channel Capacity Limit” and a minimum performance difference can be obtained using a minimum required signal-to-noise ratio (SNR).
In a system using turbo codes with a code rate R and a very large encoder block size L, a minimum Eb/No required to provide an error-free channel is expressed as follows:Eb/No>(4R−1)/2R  (1)
According to the above equation, the minimum required Eb/No in AWGN at each code rate for the turbo codes is listed in Table 1 below. In Table 1, a typical Eb/No indicates a required Eb/No for a bit error rate (BER) below 0.00001 when the encoding block size L of the turbo codes is 1024.
TABLE 1Code rateRequired Eb/No (dB)Typical Eb/No (dB) for BER = 10−5¾0.863.310⅔0.572.625½0.001.682⅜−0.4141.202⅓−0.550.975¼−0.820.756⅕−0.9750.626⅙−1.0840.5250−1.62NA
As shown in Table 1, required Eb/No are 0.86, 0.57, 0.0, −0.414, −0.55, −0.82, −0.975, and −1.084 dB respectively, for the code rates of 3/4, 2/3, 1/2, 3/8, 1/3, 1/4, 1/5, and 1/6. An at least 0.53 dB performance difference exists between an R=1/3 code using system and an R=1/6 code using system. This is a minimum performance difference based on the “Shannon Channel Capacity Limit”. Considering implementation of a real decoder and system environment, the difference becomes wider. From a simulation, an approximate 1.12 dB performance difference was observed between a system using packet code combining for R=2/3 codes and a system using packet diversity combining for the R=1/3 codes.
Table 2 shows the performance difference between packet code combining and packet diversity combining after one retransmission in a system with a sub-code code rate of 2/3. As shown in Table 2, a minimum performance difference is 1.12 dB and the packet code combining scheme produces a higher performance gain in the turbo code-using system.
TABLE 2ItemsPacket combiningCode combiningMother code rate Rm⅓⅓(X, Y0, Y′0) in FIG. 2(X, Y0, Y′0) in FIG. 2Block size (L)496496Maximum number of iterations88Number of transmissions22Actual Tx code rate Re⅔ (by puncturing)⅔ (by puncturing)for each transmissionRedundancy selectionIdentical patternDifferent patternfor all transmissions.for all transmissions.Soft combiningPacket diversity combiningPacket code combiningGain through retransmissionsSymbol repetition gainCoding gain for low rate codesMinimum required Eb/No+0.57 (dB)R-2/3 +0.57 (dB)in Table 1R-2/6 −0.55 (dB)Required Eb/No+0.57–3.0 (dB)−0.55–3.0 (dB)at 2nd retransmissionsRelative performance gain01.12 (= 0.57 + 0.55) dBSimulated relative gain02.5 (dB)(@ BER = 10−5)
As described above, the packet code combining scheme delivers excellent performance in the turbo code-using retransmission system. Therefore, the present invention provides a sub-code generating method for optimal packet code combining in a turbo code-using retransmission system. Generation of sub-codes for packet code combining according to a predetermined rule produces the aforementioned code combining gain and maximizes the performance of a system requesting sub-codes of the same size for each retransmission.
FIG. 2 is a block diagram of a typical sub-code generating apparatus using turbo codes. As shown in FIG. 2, the sub-code generating apparatus includes a turbo encoder, a sub-code generator 204, and a controller 205.
First, with regard to the turbo encoder, a first constituent encoder 201 (constituent encoder 1) encodes an input information bit stream and outputs first code symbols, i.e., information symbols X and first parity symbols Y0 and Y1. An interleaver 202 interleaves the input information bit stream according to a predetermined rule. A second constituent encoder 203 (constituent encoder 2) encodes the interleaved information bit stream and outputs second code symbols, i.e., information symbols X′ and second parity symbols Y0′ and Y1′. Thus, the output symbols of the turbo encoder are the first and second code symbols. Since the information symbols X′ generated from the second constituent encoder 203 are not transmitted in reality, the code rate of the turbo encoder is 1/5.
The sub-code generator 204 generates sub-codes from the first and second code symbols received from the first and second constituent encoders 201 and 203 by puncturing and repetition under the control of the controller 205. The controller 205 stores puncturing (and repetition) matrixes generated from algorithms shown in FIGS. 4, 5 and 6 and outputs symbol selection signals according to the puncturing matrixes to the sub-code generator 204. Then, the sub-code generator 204 selects a predetermined number of code symbols within a predetermined puncturing range in response to the symbol selection signals.
The reference characters as used here, X, Y0, Y1, Y′0, and Y′1 are defined as follows.
X: systematic code symbol or information symbol
Y0: redundancy symbol from the upper component encoder of the turbo encoder
Y1: redundancy symbol from the upper component encoder of the turbo encoder
Y′0: redundancy symbol from the lower component encoder of the turbo encoder
Y′1: redundancy symbol from the lower component encoder of the turbo encoder
FIGS. 4, 5 and 6 are flowcharts illustrating sub-code (or puncturing matrix) generating procedures according to the conventional technology. Specifically, FIG. 4 illustrates a procedure of generating the first sub-code C0 in a sub-code set, FIG. 5 illustrates a procedure of generating middle sub-codes C1 to Cs−2 in the sub-code set, and FIG. 6 illustrates a procedure of generating the last sub-code Cs−1 in the sub-code set.
Hereinbelow, ENC1 (referred to as' first code symbols) indicate the information symbols X and the first parity symbols Y0 and Y1 output from the first component encoder 201 and ENC2 (referred to as second code symbols) indicate the second parity symbols Y′0 and Y′1 output from the second component encoder 203.
Referring to FIG. 4, a maximum code rate (Rmax) available to a transmitter is set in step 401. This value is mostly given according to the data rate used in the system. A minimum code rate (Rmin) is set to be an integer-multiple of Rmax (=k/n). Here, k is the number of input symbols and n is the number of output symbols. Although Rmin can be determined arbitrarily, it is usually 1/6, 1/7 or lower Because a coding gain is saturated due to the decrease of code rates at or below R=1/7 in turbo codes. In addition, the real code rate, i.e., mother code rate (R) of a decoder in a receiver, is determined. R is set to be greater than Rmin.
In real system implementation, Rmax and Rmin are preset. In some sense, Rmax is the code rate of the sub-codes to be generated and Rmin is a target code rate after code combining of the sub-codes. In general, Rmin is the code rate of an encoder in the transmitter.
In step 403, the number of sub-codes (S) is calculated by the following equation using Rmax and Rmin. Here, the number of the sub-codes or the number of puncturing matrixes is a minimum integer exceeding the ratio of Rmax to Rmin.S=┌Rmax/Rmin┐  (2)where ┌*┐ represents a minimum integer equal to or larger than *.
A variable m is set to an initial value of 1 in step 405 and C (=m×k) is determined in step 407. C is the number of the columns of each puncturing matrix, determined by Rmax. For example, for Rmax=3/4, C can be 3, 6, 9, . . . and is set to a minimum available value for the first sub-code to be transmitted. Here, C is set to 3 for Rmax=3/4.
In step 407, the number of symbols to be selected from the puncturing matrix, Ns, is calculated by multiplying the variable m by the code length i.e., the number of code symbols n from Rmax=k/n. Ns is the number of selected symbols or the number of selected positions in each puncturing matrix and calculated by C/Rmax.
In step 409, (Ns−C) is compared with the number of the component encoders of the turbo encoder in the transmitter. The present turbo encoder is generally provided with two component encoders. Thus, it is supposed that two component encoders are used. It is determined whether (Ns−C) is 2 or greater in step 409 because the turbo encoder has two component encoders connected in parallel with the interleaver interposed as shown in FIG. 2 unlike conventional encoders using other single codes. In other words, at least one parity symbol from each component encoder must be transmitted after the information symbols are all transmitted in order to preserve the characteristics inherent in the turbo encoder.
If (Ns−C) is less than 2, only one symbol is selected from either the first parity symbol set or the second parity symbol set. From the perspective of turbo codes, either case may face problems. In the first case, sub-codes generated without second parity symbols are not turbo codes but convolutional codes with constraint length K=4 from an encoder having only the first component encoder and offers no interleaver gain that is available in the turbo encoder. On the other hand, in the second case, transmission of only systematic symbols without parity symbols from the first component encoder results in sub-codes with a code rate of 1. This is equivalent to an uncoded system without any coding gain. Accordingly, (Ns−C) must be equal to or greater than 2 to provide turbo encoder performance.
If (Ns−C) is equal to or greater than 2 in step 409, C systematic information symbols are selected from the puncturing matrix in step 411 and the other symbols are selected according to a predetermined type. For type 1, the other symbols are selected from the first and second parity symbols by Eq. (3) in step 413. The number of selected first parity symbols is equal to or greater than that of selected second parity symbols. For example, if the number of the other symbols, (Ns−C), is 3, first and second parity symbols are selected by Eq. (3) and then one more symbol is selected from the first parity symbols.┌(Ns−C)/2┐ENC1(parity)┌(Ns−C)/2┐ENC2(parity)  (3)where └*┘ represents a maximum integer equal to or less than *.
For type 2, the other symbols are selected from the first and second parity symbols by Eq. (4) in step 415. If a and b are given as symbol distribution rates for the first parity symbols and the second parity symbols, respectively, as many symbols as a minimum integer equal to or larger than the ratio of a(Ns−C) to (a+b) are selected from the first parity symbols and as many symbols as a maximum integer equal to or less than the ratio of b(Ns−C) to (a+b) are selected from the second parity symbols.┌a(Ns−C)/(a+b)┐ENC1(parity)┌b(Ns−C)/(a+b)┐ENC2(parity)  (4)where a+b=1 and a and b indicate the symbol distribution ratios for ENC1 and ENC2, respectively.
If the condition given in step 409 is not satisfied, that is, (Ns−C) is less than 2, the variable m is incremented by 1 in step 417 and the procedure returns to step 407. The purpose of step 409 is to determine whether sub-codes capable of preserving the nature of turbo codes can be generated within the present puncturing range (the size of the puncturing matrix). If the nature of the turbo codes cannot be preserved, the puncturing range is enlarged in step 417.
As described above, the initial puncturing matrix is so constructed that all information symbols are selected and at least one symbol is selected from each of the first and second parity symbol sets in the turbo encoder.
Now there will be given a description of a middle puncturing matrix generation method referring to FIG. 5. By repeating the procedure of FIG. 5, puncturing matrices C1 to Cs−2 are generated.
Referring to FIG. 5, step 501 or 503 is performed according to a predetermined type. For type 1, Ns symbols are selected from the first and second parity symbol sets by Eq. (5) in step 501. Ns is the product of m and n given from Rmax (=k/n). The number of selected first parity symbols is equal to or greater than that of selected second parity symbols. Here, unselected symbols from the previous puncturing matrices are selected.┌Ns/2┐ENC1(parity)┌Ns/2┐ENC2(parity)  (5)
For type 2, Ns symbols are selected from the first and second parity symbol sets according to predetermined ratios by Eq. (6) in step 503. If a and b are given as symbol distribution ratios for the first parity symbols and the second parity symbols, respectively, as many symbols as a minimum integer equal to or greater than the ratio of a(Ns) to (a+b) are selected from the first parity symbols and as many symbols as a maximum integer equal to or less than the ratio of b(Ns) to (a+b) are selected from the second parity symbols. Here, unselected symbols from the previous puncturing matrices are selected.┌a(Ns)/(a+b)┐ENC1(parity)┌b(Ns)/(a+b)┐ENC2(parity)  (6)
A last puncturing matrix Cs−1 generating method will be described below referring to FIG. 6.
Referring to FIG. 6, the remaining unselected symbols from the previous puncturing matrices are all selected in step 601. The number of the selected symbols is defined as Ns2. In step 603, a new Ns is defined by (NsNs2). Since symbols at all positions are selected from the puncturing matrices in the process of the operations shown in FIGS. 4, 5 and 6, the new Ns is the number of symbols to be repeatedly selected. In step 605, it is determined whether the new Ns is greater than 0. If the new Ns is 0, the procedure ends. If it is greater than 0, in step 607 as many symbols as the new Ns are selected repeatedly from the information symbols. In other words, the selected symbols are transmitted repeatedly.
The above-described sub-code generation method according to the present invention will be made clear below with specific numerical citations.
For Rmax=3/4 and R=1/5, Rmin=1/6 and S=6/(4/3)=4.5→5. Thus, five puncturing matrices are produced.{C0, C1, C2, C3, C4}: Rmax=3/4.
Since the code rate of sub-codes is 3/4 and the number of sub-codes is 5, the sub-codes have a code rate 3/20 ((1/S)×Rmax=(1/5)×(3/4)=3/20) after code combining. This implies that for 3 information bits, a receiver receives 20 code symbols. However, since 15 symbols are generated from S×n=5×4=20 and S×k=5×3=15, 5 symbols among the 15 symbols are repeatedly transmitted. The repeated symbols are preferably information symbols. In the above example, if an information symbol X is repeated once in each sub-code, a decoder receives turbo codes with R=1/5 in which information symbols occur twice for each of S sub-codes when S sub-codes are all received.
The resulting sub-codes from the procedures shown in FIGS. 4, 5 and 6 are a kind of complementary codes, but they are not in a strict sense of the term because repeated symbols exist and each sub-code exhibits a different characteristic. In view of the sub-codes being produced from turbo codes, they will be called quasi-complementary turbo codes (QCTCs).
FIG. 3 is a graph showing a comparison between the performance of HARQ using packet code combining and the performance of HARQ using packet diversity combining in terms of data throughput for a QCTC with R=2/3 and S=4 according to the conventional technology. As shown in FIG. 3, an HARQ 301 using packet code combining for the QCTC and an HARQ 302 using packet diversity combining for the QCTC show better performance than an HARQ 303 without the QCTC. For the same real time data throughput (e.g., 0.25), about −4 dB of Es/No is required in the HARQ 301, about −1.3 dB in the HARQ 302, and about 1 dB in the HARQ 303. Consequently, the use of the QCTC according to the present invention ensures a higher data throughput with less symbol energy.
The above-described sub-code generation method will be made clear below with specific numerical citations.
For Rmax=3/4, R=1/5, and Rmin=1/6, S=6/(4/3)=4.5→5. Thus, five puncturing matrixes are produced.{C0, C1, C2, C3, C4}: Rmax=3/4.
Since the code rate of sub-codes is 3/4 and the number of sub-codes is 5, the sub-codes have a code rate 3/20 ((1/S)×Rmax=(1/5)×(3/4)=3/20) after code combining. This implies that for 3 information bits, a receiver receives 20 code symbols. However, since 15 symbols are generated from S×n=5×4=20 and S×k=5×3=15, predetermined 5 symbols among the 15 symbols are repeatedly transmitted. The repeated symbols are preferably information symbols. In the above example, if an information symbol X is repeated once in each sub-code, a decoder receives turbo codes with R=1/5 in which information symbols occur twice in each of S sub-codes.
The resulting sub-codes from the procedures illustrated in FIGS. 4, 5 and 6 are kinds of complementary codes, although they are not in a strict sense of the term, because repeated symbols exist and each sub-code exhibits a different characteristic. In view of the sub-codes being produced from turbo codes, they will be called QCTCs.
In the conventional technology, the sub-codes of a QCTC have a predetermined code rate. For transmission of a single information word block, the sub-codes of a QCTC with a particular code rate are used. In other words, the conventional QCTC is a one-dimensional QCTC.
Under a changed channel environment or with an input information word of a changed length, a sub-code with a different code rate must be transmitted. However, no method of selecting and transmitting QCTCs with different code rates is given. In reality, it is preferable to use a sub-code of a new QCTC with a high code rate (a low code rate) other than the previous sub-codes of QCTCs in a good channel environment (in a bad channel environment). In other words, there is a need for a method of determining QCTCs adaptively according to channel environment or other factors.